// cloudfunctions/deleteBankCard/index.js
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  try {
    const { userId, cardId } = event
    
    if (!userId || !cardId) {
      return { success: false, message: '参数缺失' }
    }
    
    // 检查银行卡是否存在
    const cardRes = await db.collection('user_bank_cards')
      .doc(cardId)
      .get()
      
    if (!cardRes.data || cardRes.data.userId !== userId) {
      return { success: false, message: '银行卡不存在' }
    }
    
    // 如果要删除的是默认卡，需要先设置其他卡为默认（如果有）
    if (cardRes.data.isDefault) {
      // 查询用户的其他银行卡
      const otherCards = await db.collection('user_bank_cards')
        .where({
          userId: userId,
          _id: db.command.neq(cardId)
        })
        .get()
      
      // 如果有其他银行卡，设置第一张为默认
      if (otherCards.data && otherCards.data.length > 0) {
        await db.collection('user_bank_cards')
          .doc(otherCards.data[0]._id)
          .update({
            data: {
              isDefault: true,
              updateTime: db.serverDate()
            }
          })
      }
    }
    
    // 删除银行卡
    await db.collection('user_bank_cards')
      .doc(cardId)
      .remove()
      
    return { success: true, message: '银行卡删除成功' }
    
  } catch (error) {
    console.error('删除银行卡失败:', error)
    return { success: false, message: '删除银行卡失败' }
  }
}